package com.headfirst.factory.abstractfactory.ingredientfactory;

import com.headfirst.factory.abstractfactory.ingredient.*;

/**
 * 抽象的原料工厂，定义抽象的原料生产方法，具体原料的生产由具体的实现类（子类）负责。
 * 
 * 比如对于面团，纽约和芝加哥制作Pizza时，需要的面团类型是不一样的，其他亦如此
 */
public interface PizzaIngredientFactory {
    Dough createDough();  // 面团
    Sauce createSauce();  // 酱料
    Cheese createCheese(); // 芝士
    Veggies[] createVeggies(); // 蔬菜
    Pepperoni createPepperoni(); // 腊肠
    Clams createClam(); // 蛤利
}
